
// 父类 | 基类
export class Person {
  // 实例属性
  // 公共属性： 谁都可以访问
  public name: string;
  // 保护属性： 只能在类“Person”及其子类中访问
  protected age: number;
  // 私有属性: 只能在Person中访问
  private _litterMoney = 100;
  // 存储器
  public get money() {
    return this._litterMoney;
  }
  // 
  public set money(value: number) {
    this._litterMoney = value;
  }

  // 构造器
  constructor(name: string, age: number) {
    this.name = name;
    this.age = age;
  }
  // 原型方法
  sayName() {
    console.log(`我是${this.name}, 今年${this.age}岁了！！`);
  }
}

// 子类 | 派生类
export class Man extends Person {
  public sex: string = "男";
  constructor(name: string, age: number) {
    super(name, age);
    console.log(this.age);
  }
}

const m = new Man("张三", 18);

console.log(m.money);
m.money = 2000
console.log(m.money);
